
# 面向对象-类变量
"""
1.类变量 ：就是类当中的变量 ，它是在方法外，以及类的内部定义的变量
定义： 变量名 = 值
调用：
    （1）对象名.变量名
    （2）类名.变量名
作用范围 ：作用在整个类 ，在整个类当中都可以使用这个变量
使用场景 ：一般定义此类的公共数据。

2.实例变量：主要是给对象去使用的变量，它是在方法内部定义。
定义：self.变量名 = 值
调用 ： self.变量名
作用范围 ： 针对对象

3.局部变量 ： 给方法或者方法内的代码块定义的变量 ，定义在方法内
定义 ： 变量名 = 值
调用 ： 变量名
作用范围 ： 方法内或者代码块内。


4. 类方法
定义 ： 在方法前加一个装饰器@classmehod ,第一个参数cls .
调用 ：
    1. 实例对象.类方法
    2. 类名.类方法


5. 静态方法
定义 ：在方法前加一个装饰器@staticmehod ，不接受任何参数
调用 ：
    1.类.静态方法
    2.实例对象.静态方法
"""

class Bug:

    # 类变量
    project_name = 'tpshop'
    bug_type = ['功能','兼容性','性能']
    bug_version = ['主干']

    def __init__(self):
        # 定义一个实例变量
        self.version = 1.0

    @staticmethod
    def shuoming():
        print("提交bug的规范")

    @classmethod
    def export(cls):
        print("这是一个类方法")

    # 定义功能
    def create_bug(self):
        print("调用对象名:{}".format(self))
        print(Bug.bug_type)
        print("此bug的创建版本是:{}".format(self.version))
        bug_id = 100
        print("打印此bugid:{}".format(bug_id))

    def edit_bug(self):
        pass

    def delete_bug(self):
        pass

    # 模拟禅道的bug查询，编写此方法，要求用户传递用户标题
    def search_bug(self,title):
        # 定义局部变量db_bugs
        db_bugs = [
            {'bug_id': 1, 'bug_title': '学生列表页使用学生名称进行搜索 结果不正确', 'bug_project': self.project_name,'version': self.version},
            {'bug_id': 2, 'bug_title': '学生列表页jsdf搜索 结果不正确', 'bug_project': self.project_name,
             'version': self.version},
            {'bug_id': 3, 'bug_title': '页使fsdf行搜索 结果不正确', 'bug_project': self.project_name,
             'version': self.version},
            {'bug_id': 4, 'bug_title': '学生列表fdsfsd进行搜索 结果不正确', 'bug_project': self.project_name,
             'version': self.version},
            {'bug_id': 5, 'bug_title': '用学生名称进行搜索 结果不正确', 'bug_project': self.project_name,
             'version': self.version},
            {'bug_id': 6, 'bug_title': '学员列表页按照学生名称进行搜索 结果不正确', 'bug_project': self.project_name,
             'version': self.version},
        ]
        lst = []        # 存放搜索后的结果
        for bug in db_bugs:
            bug_title = bug.get('bug_title')        # 代码块内的bug_title
            if title in bug_title:
                lst.append(bug)
        return lst



bug1 = Bug()         # 初始化了一个对象
print(bug1.search_bug('学生列表'))
bug1.export()
Bug.export()
bug1.shuoming()
Bug.shuoming()
